<?php
$pid = $form_values['pid'];
$profile = dvbanner_profile_get($pid);

// Đảm bảo thông tin đã profile tồn tại 
if (is_numeric ($pid) && $profile) {
  // Đảm bảo tên profile không trùng lắp
  $number = db_result (db_query (
    "SELECT COUNT(*) FROM {dvbanner_profile} WHERE name = '%s' && pid != %d",
    $form_values['name'], $pid
  ));
	
  if ($number >= 1) {
    form_set_error ('name', t('Profile name has already existed. Please select another one.'));
  }
	
  // Basic settings
  //// height phải là giá trị số
  if (!preg_match ('|^[0-9]+$|', $form_values['height'])) {
  	form_set_error ('height', t("Height must be a number."));
  }
	
  //// width phải là giá trị số
  if (!preg_match ('|^[0-9]+$|', $form_values['width'])) {
    form_set_error ('width', t("Width must be a number."));
  }
	
  //// Đảm bảo tập tin tải lên phải là một ảnh
  if ($image = file_check_upload ('image')) {
    $image_info = image_get_info($image->filepath);
    
    if (!$image_info || !$image_info['extension']) {
  	  form_set_error('image', t('The uploaded file was not an image.'));
    }
  }
	
  //// Các tông màu phải là hexa value
  foreach (array ('backcolor', 'frontcolor', 'lightcolor', 'screencolor') as $field) {
    if (!preg_match ('|^#[0-9ABCDEF]+$|i', $form_values[$field])) {
      form_set_error ($field, t('!field was not a valid value.', array ('!field' => $field)));
    }
  }
	
  // Display settings
  //// logo: Tập tin tải lên phải là một ảnh
  if ($logo = file_check_upload ('logo')) {
    $logo_info = image_get_info($logo->filepath);
    
    if (!$logo_info || !$logo_info['extension']) {
      form_set_error('logo', t('The uploaded file was not an image.'));
    }
  }
	
  // Biến trợ giúp việc kiểm tra các element gọn gàng hơn
  $_bool = array ('false', 'true');
	
  //// overstretch, show icon, show equalizer: đảm bảo giá trị trong tập giá trị định trước
  $values_set = array (
    'overstretch'    => array ('false', 'true', 'fit', 'none'),
    'showicons'      => $_bool,
    'showeq'         => $_bool,
    'shownavigation' => $_bool,
    'showstop'       => $_bool,
    'showdigits'     => $_bool,
    'usefullscreen'  => $_bool,
    'autostart'      => $_bool,
    'repeat'         => array ('false', 'list', 'true'),
    'shuffle'        => $_bool
  );
	
  foreach ($values_set as $key => $val) {
    if (!in_array ($form_values[$key], $val)) {
      form_set_error (
        $key, 
        t("Invalid valid value for @field field.", array ('@field' => $key)
      ));
    }
  }
  
  // Playlist
  if (!empty ($form_values['rotatetime']) && !is_numeric ($form_values['rotatetime'])) {
    form_set_error ('rotatetime' , t('Rotate time must be an integer.'));
  }
}
else {
  form_set_error ('', t('Profile not found.'));
}
